<?php
	require_once('conf/top.php');
	$template = $tpl->loadTemplate('admin.html');

	connectDb();
	session_start();

	if ($_SESSION['rights'] == 'ADMIN' || $_SESSION['rights'] == 'MODERATOR'){
		$theme = theme(); // Gérer dans lib.
		$infos = array();
		$erreurs = array();

		$datetime = date("Y-m-d H:i:s");
		$users = getAllUser(30);
		$rights = getRights();
		$availabilities = getAvailabilities($datetime, 30);
		$times = getTimes(30);

		$countUser = array();
		$userPerCat = array();
		
		/* Gestion utilisateurs */
		if(isset($_POST['banUser'])){
			if(!empty($_POST['id_user']) && isset($_POST['ban'])){
				$userToBan = getUserById($_POST['id_user']);
				if($userToBan[0]['rights'] != 'ADMIN'){
					if($_POST['ban'] == 0){
						$changeBan = updateUserBan($_POST['id_user'], 1);
						if($changeBan){
							$infos[] = "L'utilisateur a été banni.";
							$users = getAllUser(30);
						}
						else{
							$erreurs[] = "Il y a eu un problème lors du bannissement.";
						}
					}
					else if($_POST['ban'] == 1){
						$changeBan = updateUserBan($_POST['id_user'], 0);
						if($changeBan){
							$infos[] = "L'utilisateur a été débanni.";
							$users = getAllUser(30);
						}
						else{
							$erreurs[] = "Il y a eu un problème lors du débannissement.";
						}
					}
				}
			}
		}
		if(isset($_POST['rights'])){
			if(!empty($_POST['id_user']) && !empty($_POST['rights'])){
				$changeRight = updateUserRights($_POST['id_user'], $_POST['rights']);
				if($changeRight){
					$infos[] = "L'utilisateur a changé de status, il est devenu ".$_POST['rights'].".";
					$users = getAllUser(30);
				}
				else{
					$erreurs[] = "Le changement de droit n'a pas pu s'effectuer.";
				}
			}
		}

		/* Gestion des Availability */
		if(isset($_POST['supprimerAvailability'])){
			if(isset($_POST['id_availability']) && !empty($_POST['id_availability'])){
				$id_availability = $_POST['id_availability'];
				$check = updateAvailabilityActive($id_availability);
				if($check){
					$infos[] = "La disponibilité a bien été supprimé du catalogue.";
					$availabilities = getAvailabilities($datetime, 30);
				}
				else{
					$erreurs[] = "La suppression de disponibilité est impossible.";
				}
			}
		}

		/* Gestion statistiques */
		$dateStat = date_create();
		$dateStat = date_modify($dateStat, '-11 month');
		for($i = 0; $i < 11; $i++){
			$dateStat = date_modify($dateStat, '+1 month');
			$month = date_format($dateStat, 'm/y');
			$count = countUsersByMonth(date_format($dateStat, 'Y-m-d'));
			$countUser[$i]['month'] = $month;
			$countUser[$i]['count'] = $count[0][0];
		}

		$cats = getAllCategories();
		foreach ($cats as $cat) {
			$count = countUsersByCategorie($cat["id_categorie"]);
			$userPerCat[] = $count[0];
		}

		/* On envoie le necessaire à notre template */
		echo $template->render(array('MEDIA_PATH' => MEDIA_PATH, 'theme' => $theme, 'erreurs' => $erreurs, 'infos' => $infos, 'session' => $_SESSION, 'users' => $users, 'times' => $times, 'availabilities' => $availabilities, 'rights' => $rights, 'countUser' => $countUser, 'userPerCat' => $userPerCat));
	}
	else{
		header('Location: index.php');
	}